import pymysql  
from dbutils.pooled_db import PooledDB 
  
class MySQLConnectionPool:  
    
    def __init__(self):
        db_config = {  
            'user': 'root',  
            'password': 'lcz19860109',  
            'host': 'localhost',  
            'database': 'dev10086',  
            'maxconnections': 10,  # 连接池最大连接数  
            'mincached': 2,        # 缓存中保持的最小空闲连接数  
            'maxcached': 5,        # 缓存中保持的最大空闲连接数  
            'maxshared': 5,        # 连接池中最多共享的连接数，0表示不共享  
            'blocking': True,      # 连接池中如果没有可用连接后，是否阻塞等待。True表示等待，False表示不等待然后报错  
            'maxusage': None,      # 一个连接最多可以被重复使用的次数，None表示无限制  
            'setsession': [],      # 开始会话前执行的命令列表。如：["set datestyle to 'iso', session"]  
            'ping': 0,             # ping MySQL服务端，检查是否服务可用。# 如：0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always  
            'host': 'localhost',  
            'port': 3306,  
            'charset': 'utf8',  
            'use_unicode': True  
        }  
            
        self.db = PooledDB(
            creator=pymysql,
            **db_config
        )
        
    def get_connect(self):
        return self.db.connection()
    
    def close(self):
        self.db.close()